package com.inforich.projectManage.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.inforich.common.mybatis.Location;
import com.inforich.common.mybatis.LocationHandler;
import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;

import com.inforich.common.core.domain.BaseParamEntity;
import com.inforich.common.annotation.Excel;
import java.util.List;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import com.inforich.common.core.domain.BaseEntity;

/**
 * 拆迁备案对象 br_project_rubbish_removal
 *
 * @author hjm
 * @date 2022-10-30
 */
@Data
@EqualsAndHashCode()
@Accessors(chain = true)
@TableName("br_project_rubbish_removal")
public class ProjectRubbishRemoval extends BaseParamEntity {

  private static final long serialVersionUID = 1L;

  /**
   * 主键
   */
  @TableId(type = IdType.ASSIGN_UUID)
  private String id;

  /**
   * 项目ID
   */
  private String projectId;
  @Excel(name = "项目名称")
  @TableField(exist = false)
  private String projectName;
  @Excel(name = "项目类型", dictType = "project_kind_id")
  @TableField(exist = false)
  private Long projectKindId;
  @Excel(name = "项目地址")
  @TableField(exist = false)
  private String projectAddress;
  @TableField(exist = false, typeHandler = LocationHandler.class)
  private Location projectLocation;

  /**
   * 建筑物年代
   */
  @Excel(name = "建筑物年代")
  private String buildingYear;

  /**
   * 建筑物类型
   */
//  @Excel(name = "建筑物类型")
  private Integer buildingType;
  @TableField(exist = false)
  private String buildingTypeName;

  /**
   * 结构类型
   */
  @Excel(name = "结构类型", dictType = "structure_type_id")
  private Integer structureType;

  /**
   * 拆除工期
   */
  @Excel(name = "拆除工期")
  private String removalPeriod;

  /**
   * 曾经用途
   */
  @Excel(name = "曾经用途")
  private String buildingUse;

  /**
   * 征收实施单位
   */
  @Excel(name = "征收实施单位")
  private String constructionDept;

  /**
   * 征收实施单位联系人
   */
  @Excel(name = "征收实施单位联系人")
  private String constructionPerson;

  /**
   * 征收实施单位联系电话
   */
  @Excel(name = "征收实施单位联系电话")
  private String constructionPhone;

  /**
   * 拆除单位
   */
  @Excel(name = "拆除单位")
  private String removalDept;

  /**
   * 拆除单位联系人
   */
  @Excel(name = "拆除单位联系人")
  private String removalPerson;

  /**
   * 拆除单位联系方式
   */
  @Excel(name = "拆除单位联系方式")
  private String removalPhone;

  /**
   * 资源化利用企业
   */
  private Long disposalLandId;
  @Excel(name = "资源化利用企业")
  @TableField(exist = false)
  private String disposalLandName;

  /**
   * 资源化利用企业联系人
   */
  @Excel(name = "资源化利用企业联系人")
  private String disposalLandPerson;

  /**
   * 资源化利用企业联系电话
   */
  @Excel(name = "资源化利用企业联系电话")
  private String disposalLandPhone;

  /**
   * 运输单位
   */
  private String transportCompanyId;
  @Excel(name = "运输单位")
  @TableField(exist = false)
  private String transportCompanyName;

  /**
   * 运输单位联系人
   */
  @Excel(name = "运输单位联系人")
  private String transportCompanyPerson;

  /**
   * 运输单位联系电话
   */
  @Excel(name = "运输单位联系电话")
  private String transportCompanyPhone;

  /**
   * 运输单位意见
   */
//  @Excel(name = "运输单位意见")
  private String transportCompanySuggestion;

  /**
   * 运输单位车辆信息
   */
  @Excel(name = "运输单位车辆信息")
  private String transportCompanyCarInfo;

  /**
   * 预计拆除面积
   */
  @Excel(name = "预计拆除面积(m²)")
  private BigDecimal rubbishRemovalArea;

  /**
   * 其中住宅面积
   */
  @Excel(name = "其中住宅面积(m²)")
  private BigDecimal rubbishHouseArea;

  /**
   * 预计垃圾重量
   */
  @Excel(name = "预计产生垃圾(吨)")
  private BigDecimal rubbishPlanWeight;

  /**
   * 可利用重量
   */
  @Excel(name = "预计可利用(吨)")
  private BigDecimal rubbishRecycleWeight;

  /**
   * 可利用比例
   */
  @Excel(name = "可利用比例(%)")
  private BigDecimal rubbishRecycleRatio;

  /**
   * 预计清运时间
   */
  @JsonFormat(pattern = "yyyy-MM-dd")
  @Excel(name = "预计清运时间", width = 30, dateFormat = "yyyy-MM-dd")
  private Date rubbishPlanTransportDate;

  /**
   * 垃圾分拣拆除计划
   */
  @Excel(name = "垃圾分拣拆除计划", dictType = "stage_fill")
  private String classifyStage;

  /**
   * 建筑垃圾资源化利用计划
   */
  @Excel(name = "建筑垃圾资源化利用计划", dictType = "stage_fill")
  private String recycleStage;
  /**
   * 垃圾分拣拆除计划开始时间
   */
  @JsonFormat(pattern = "yyyy-MM-dd")
  @Excel(name = "垃圾分拣拆除计划开始时间", width = 30, dateFormat = "yyyy-MM-dd")
  private Date classifyStageStartDate;

  /**
   * 垃圾分拣拆除计划结束时间
   */
  @JsonFormat(pattern = "yyyy-MM-dd")
  @Excel(name = "垃圾分拣拆除计划结束时间", width = 30, dateFormat = "yyyy-MM-dd")
  private Date classifyStageEndDate;

  /**
   * 建筑垃圾资源化利用计划开始时间
   */
  @JsonFormat(pattern = "yyyy-MM-dd")
  @Excel(name = "建筑垃圾资源化利用计划开始时间", width = 30, dateFormat = "yyyy-MM-dd")
  private Date recycleStageStartDate;

  /**
   * 建筑垃圾资源化利用计划结束时间
   */
  @JsonFormat(pattern = "yyyy-MM-dd")
  @Excel(name = "建筑垃圾资源化利用计划结束时间", width = 30, dateFormat = "yyyy-MM-dd")
  private Date recycleStageEndDate;
  /**
   * 图片
   */
  private String projectImages;

  /**
   * 状态( 10:未申请;20:待审核;30:已通过;40:未通过 )
   */
  @Excel(name = "状态", dictType = "approval_status")
  private Integer approvalStatus;

  /**
   * 审批意见
   */
  @Excel(name = "审批意见")
  private String approvalDesc;

  /**
   * 审批时间
   */
  @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
  @Excel(name = "审批时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
  private Date approvalDate;

  /**
   * 创建时间
   */
  @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
  @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
  private Date createdDate;

  /**
   * 修改时间
   */
  @JsonFormat(pattern = "yyyy-MM-dd")
  private Date modifiedDate;

  /**
   * 垃圾列表
   */
  @TableField(exist = false)
  private List<ProjectRubbishDetail> rubbishDetailList;
  @TableField(exist = false)
  private List<ProjectRubbishDetail> rubbishClassifyList;
  @TableField(exist = false)
  private List<ProjectRubbishDetail> rubbishRecycleList;

}